地图截屏功能 Sample详情
最后更新时间:2019年6月17日
类似移动设备中的截屏功能,MapView提供只对地图截屏的功能,以图片的形式保存截取的地图。
获取地图视图完整范围的地图截图。
mapView.getScreenSnapshot(new MapViewScreenSnapshotCallback() { @Override public void onScreenSnapshot(Bitmap bitmap) { //在此回调方法中可以获取到Bitmap对象,用户可自行保存为本地图片文件 } @Override public void onScreenSnapshot(int i, int i1, int i2, int i3, Bitmap bitmap) { } });
获取指定视图区域内的地图截图。
mapView.getScreenSnapshot(0, 0, 500, 500, new MapViewScreenSnapshotCallback() { @Override public void onScreenSnapshot(Bitmap bitmap) { } @Override public void onScreenSnapshot(int i, int i1, int i2, int i3, Bitmap bitmap) { //在此回调中可以获取到调用截屏代码时传入的视图范围,以及截取的位图 } });
说明:getScreenSnapshot方法的前两个参数表示指定视图区域左上角的x、y坐标,采用视图坐标;第三、四个参数表示指定视图区域的宽、高。
指定的地图范围获取地图图片,与地图是否显示在当前视图范围内无关。
//出图范围(采用地图坐标) Rect mDisRange = mapView.getMap().getEntireRange(); //构建位图对象,给定宽、高、像素格式 Bitmap rangebmp = Bitmap.createBitmap(mapView.getMeasuredWidth(),mapView.getMeasuredHeight(), Bitmap.Config.ARGB_8888); //根据范围出图 mapView.getBitmap(mDisRange, rangebmp);
方法getBitmap()中,第一个参数为指定的出图范围,第二个参数为用户的在外部构造的用于保存出图结果的bitmap对象。出图的结果同样保存到其位图参数对象rangebmp中,可以对位图rangebmp做进一步的处理,可以显示到界面中,也可保存为本地图片文件。
说明:地图范围的指定采用地图坐标,成生的图像的宽高由用户在构造Bitmap对象时指定;生成的图像含有透明通道,在视图上显示时需要设置视图的背景颜色;用户构造的Bitmap像素格式必须为ARGB_8888。